home *** CD-ROM | disk | FTP | other *** search
- New features of classes
- =======================
-
- A class can implement certain operations that are invoked by special
- syntax (such as subscription or arithmetic operations) by defining
- methods with special names.
-
-
- Special methods for any type
- ----------------------------
-
- __repr__(self) --> string
-
- Used by the print statement and conversions (reverse quotes) to
- compute the string representation of an object.
-
- __cmp__(self, other) --> int
-
- Used by all comparison operations. Should return -1 if self<other, 0
- if self==other, +1 if self>other. Due to limitations in the
- interpreter, exceptions raised by comparisons are ignored, and the
- objects will be considered equal in this case.
-
-
- Special methods for sequence and mapping types
- ----------------------------------------------
-
- __len__(self) --> int
-
- Used by the built-in function len(). Should return the length of the
- object, which should be >= 0. Also, an object whose __len__() method
- returns 0
-
- __getitem__(self, key) --> value
-
- Used to implement value = self[key]. Note that the special
- interpretation of negative keys (if the class wishes to emulate a
- sequence type) is up to the __getitem__ method.
-
- __setitem__(self, key, value)
-
- Used to implement self[key] = value. Same note as for __getitem__.
-
- __delitem__(self, key)
-
- Used to implement del self[key]. Same note as for __getitem__.
-
-
- Special methods for sequence types
- ----------------------------------
-
- __getslice__(self, i, j) --> sequence
-
- Used to implement self[i:j]. Note that missing i or j are replaced by
- 0 or len(self), respectively, and len(self) has been added to negative
- i or j.
-
- __setslice__(self, i, j, sequence)
-
- Used to implement self[i:j] = value. Same note as for __getslice__.
-
- __delslice__(self, i, j)
-
- Used to implement del self[i:j]. Same note as for __getslice__.
-
-
- Special methods for numeric types
- ---------------------------------
-
- __add__, __sub__, __mul__, __div__, __mod__, __divmod__, __pow__,
- __lshift__, __rshift__, __and__, __xor__, __or__
-
- Used to implement the binary arithmetic operations (divmod and pow are
- called by built-in functions). All have the call pattern
- func(self, other) --> number.
-
- __neg__, __pos__, __abs__, __invert__
-
- Used to implement the unary arithmetic operations (-, +, abs and ~).
- All have the call pattern func(self) --> number.
-
- __nonzero__(self) --> int
-
- Used to implement boolean testing. An alternative name for this
- method is __len__.
-
- __coerce__(self, other) --> (self1, other1) or None
-
- Used to implement "mixed-mode" numeric arithmetic. Either return a
- tuple containing self and other converted to some common type, or None
- if no way of conversion is known. When the common type would be the
- type of other, it is sufficient to return None, since the interpreter
- will also ask the other object to attempt a coercion (but sometimes,
- if the implementation of the other type cannot be changed, it is
- useful to do the conversion to the other type here).
-
- __int__(self) --> int
- __long__(self) --> long
- __float__(self) --> float
-
- Used to implement the built-in functions int(), long() and float().
-
-
- Notes
- -----
-
- Except for __repr__ and __cmp__, when no appropriate method is
- defined, attempts to execute the operation raise an exception. For
- __repr__ and __cmp__, the traditional interpretations are used
- in this case.
-